home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 076-100 / 077 / samples / sieve.d < prev    next >
Text File  |  1995-03-13  |  649b  |  36 lines

  1. /* Eratosthenes Sieve Prime Number Program in Draco */
  2.  
  3. bool
  4.     DEBUG = false;
  5.  
  6. int
  7.     SIZE = 8190,
  8.     ITERATIONS = 10;
  9.  
  10. proc main()void:
  11.     [SIZE + 1] bool flags;
  12.     unsigned ITERATIONS iter;
  13.     uint i, prime, k, count;
  14.  
  15.     writeln(ITERATIONS, " iterations.");
  16.     for iter from 1 upto ITERATIONS do
  17.     count := 0;
  18.     for i from 0 upto SIZE do
  19.         flags[i] := true;
  20.     od;
  21.     for i from 0 upto SIZE do
  22.         if flags[i] then
  23.         prime := 2 * i + 3;
  24.         if DEBUG then
  25.             writeln(prime);
  26.         fi;
  27.         for k from i + prime by prime upto SIZE do
  28.             flags[k] := false;
  29.         od;
  30.         count := count + 1;
  31.         fi;
  32.     od;
  33.     od;
  34.     writeln(count, " primes.");
  35. corp;
  36.